﻿using System.Text;
using YookingBizWQW.Class.Public;
using YookingSvrDBCall.Class.DBLogic;
using YookingSvrDBCall.Class.DBPub;

namespace YookingBizWQW.Class.Demo
{
    class clsSFZ
    {
        //注释：王庆文 2019年12月21日===================================================
        //直接从服务器端读取“民族”字典数据
        public string GetMZDictionary(string strB64RequestData)
        {
            string strRtData = "no data";

            //先进行解密，然后在进行中文解码，最后得到明文的请求数据
            string strRequestData = clsHandleData.DeUrlRequest(strB64RequestData);

            #region 将strRequestData包含的各种参数一一解析出来

            string strSQLCondition = "1=1"; //查询条件

            //这些参数用★分隔开，客户端与服务器端要一致
            string[] strArray = strRequestData.Split('★');
            if (strArray.Length >= 1)
            {
                strSQLCondition = strArray[0];
            }

            #endregion

            #region 生成查询记录的SQL语句

            StringBuilder sbQuerySQL = new StringBuilder();
            sbQuerySQL.AppendLine(" SELECT ");
            sbQuerySQL.AppendLine("   t.DICTCODE, ");
            sbQuerySQL.AppendLine("   t.DICTMEMO ");
            sbQuerySQL.AppendLine(" FROM ");
            sbQuerySQL.AppendLine("   DICT_MZ t ");
            sbQuerySQL.AppendLine(" WHERE ");
            sbQuerySQL.AppendLine("   " + clsSQLSyntax.IsNullSQL("Dict", "t.SYS_CANCELDATETIME"));
            sbQuerySQL.AppendLine(" ORDER BY t.DICTCODE ");

            #endregion

            clsDbSQLLogic myDB = new clsDbSQLLogic(); //实例化数据库操作类
            strRtData = myDB.YookingExecuteJson("Dict", sbQuerySQL.ToString());

            return strRtData; //数据库查询结果
        }

        //注释：王庆文 2019年12月21日===================================================
        //模糊查询符合条件的身份证数据信息
        public string GetSFZInfo(string strB64RequestData)
        {
            string strRtData = "no data";

            //先进行解密，然后在进行中文解码，最后得到明文的请求数据
            string strRequestData = clsHandleData.DeUrlRequest(strB64RequestData);

            #region 将strRequestData包含的各种参数一一解析出来

            string strRYXM = "%"; //人员姓名
            string strSFZH = "%"; //身份证号码

            //这些参数用★分隔开，客户端与服务器端要一致
            string[] strArray = strRequestData.Split('★');
            if (strArray.Length >= 2)
            {
                strRYXM = strArray[0];
                strSFZH = strArray[1];
            }

            #endregion

            #region 生成查询记录的SQL语句

            clsDBSpace mySpace = new clsDBSpace(); //字典表空间名
            string strDictSapace = mySpace.GetDBSpaceName("Dict");

            StringBuilder sbQuerySQL = new StringBuilder();
            sbQuerySQL.AppendLine(" SELECT ");
            sbQuerySQL.AppendLine(" 	t.RYBM, ");
            sbQuerySQL.AppendLine(" 	t.RYXM, ");
            sbQuerySQL.AppendLine(" 	t.XB, ");
            sbQuerySQL.AppendLine(" 	a.DICTMEMO AS XBMEMO, ");
            sbQuerySQL.AppendLine(" 	t.MZ, ");
            sbQuerySQL.AppendLine(" 	b.DICTMEMO AS MZMEMO, ");
            sbQuerySQL.AppendLine(" 	t.CSRQ, ");
            sbQuerySQL.AppendLine(" 	t.HJDZ, ");
            sbQuerySQL.AppendLine(" 	t.SFZH, ");
            sbQuerySQL.AppendLine(" 	t.QFDW, ");
            sbQuerySQL.AppendLine(" 	t.YXQQ, ");
            sbQuerySQL.AppendLine(" 	t.YXQZ, ");
            sbQuerySQL.AppendLine(" 	t.DJSJ, ");
            sbQuerySQL.AppendLine(" 	t.BZ, ");
            sbQuerySQL.AppendLine(" 	t.SYS_RECORDID ");
            sbQuerySQL.AppendLine(" FROM ");
            sbQuerySQL.AppendLine(" 	DEMO_SFZ t ");
            sbQuerySQL.AppendLine(" LEFT JOIN " + strDictSapace + ".DICT_XB a ON a.DICTCODE = t.XB ");
            sbQuerySQL.AppendLine(" LEFT JOIN " + strDictSapace + ".DICT_MZ b ON b.DICTCODE = t.MZ ");
            sbQuerySQL.AppendLine(" WHERE ");
            sbQuerySQL.AppendLine(" 	" + clsSQLSyntax.IsNullSQL("Data", "t.SYS_CANCELDATETIME"));
            sbQuerySQL.AppendLine(" AND " + clsSQLSyntax.IsNullSQL("Dict", "a.SYS_CANCELDATETIME"));
            sbQuerySQL.AppendLine(" AND " + clsSQLSyntax.IsNullSQL("Dict", "b.SYS_CANCELDATETIME"));
            sbQuerySQL.AppendLine(" AND t.RYXM LIKE '%" + strRYXM + "%' ");
            sbQuerySQL.AppendLine(" AND t.SFZH LIKE '%" + strSFZH + "%' ");
            sbQuerySQL.AppendLine(" AND " + clsSQLSyntax.RowRange("Data", 0, 10)); //只查出前10条记录

            #endregion

            clsDbSQLLogic myDB = new clsDbSQLLogic(); //实例化数据库操作类
            strRtData = myDB.YookingExecuteJson("Data", sbQuerySQL.ToString());

            return strRtData; //数据库查询结果
        }

        //注释：王庆文 2019年12月21日===================================================
        //查询指定身份证号码的照片图像信息
        public string GetSFZPhoto(string strB64RequestData)
        {
            string strRtData = "no data";

            //先进行解密，然后在进行中文解码，最后得到明文的请求数据
            string strRequestData = clsHandleData.DeUrlRequest(strB64RequestData);

            #region 将strRequestData包含的各种参数一一解析出来

            string strDBGroup = "Data";   //主表数据库分组名
            string strDBTblName = "Test"; //主表库名称
            string strRecordID = "00000"; //主表记录ID
            string strSFZH = "000000000"; //指定人员的身份证号码

            //这些参数用★分隔开，客户端与服务器端要一致
            string[] strArray = strRequestData.Split('★');
            if (strArray.Length >= 4)
            {
                strDBGroup = strArray[0];
                strDBTblName = strArray[1];
                strRecordID = strArray[2];
                strSFZH = strArray[3];
            }

            #endregion

            #region 生成查询记录的SQL语句

            StringBuilder sbQuerySQL = new StringBuilder();
            sbQuerySQL.AppendLine(" SELECT ");
            sbQuerySQL.AppendLine(" 	IMAGEENTITY ");
            sbQuerySQL.AppendLine(" FROM ");
            sbQuerySQL.AppendLine(" 	MDA_PUBLICIMAGE ");
            sbQuerySQL.AppendLine(" WHERE ");
            sbQuerySQL.AppendLine(" 	" + clsSQLSyntax.IsNullSQL("Data", "SYS_CANCELDATETIME"));
            sbQuerySQL.AppendLine(" AND upper(MAINTABLEDEFINEID) = '" + strDBTblName.ToUpper() + "' ");
            sbQuerySQL.AppendLine(" AND MAINTABLERECORDID = '" + strRecordID + "' ");
            sbQuerySQL.AppendLine(" AND SPECIALRELATENUMBER = '" + strSFZH + "' ");

            #endregion

            clsDbSQLLogic myDB = new clsDbSQLLogic(); //实例化数据库操作类
            strRtData = myDB.YookingExecuteJson("Data", sbQuerySQL.ToString());

            return strRtData; //数据库查询结果
        }






    }
}
